javascript recursion interview questions